﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using System.Xml.Linq;
using DVK.SP2007.UniversalClient;
using DVK.SP2007.Constants;

namespace DVK.SP2007
{
    /// <summary>
    /// IMessageMapper is the interface for everything and anything to do with dvk message mapping.
    /// </summary>
    /// <typeparam name="T">type to return as result of mapping</typeparam>
    public interface IMessageMapper<T>
    {
        /// <summary>
        /// Maps metadata from somewhere into the object instance of type T. 
        /// 
        /// <remarks>
        /// Normally this means mapping information from different location into one format (object).
        /// e.g. to IDvkMessage or Inbox SPListItem.
        /// </remarks>
        /// </summary>
        /// <returns></returns>
        T Map();
    }
}
